debian / ubuntu can have several kernels, with or without source. obviously only one is running (or “booted to”) at any given time, but the each may have or not have their headers for module builds.

apt-get install linux-headers-`uname -r`

will at least install the headers for the current kernel you are running.
those are “backticks” around…
uname -r
… in case this form eats them.